package com.xoa.controller.vehicle;

import com.xoa.model.vehicle.VehicleMaintenanceWithBLOBs;
import com.xoa.service.vehicle.VehicleMaintenanceService;
import com.xoa.util.AjaxJson;
import com.xoa.util.ToJson;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;

/**
 * 创建作者:   高亚峰
 * 创建日期:   2017/9/20 15:56
 * 类介绍  :   车辆维护记录管理
 * 构造参数:
 */
@RequestMapping("/tenance")
@Controller
public class VehicleMaintenanceController {

    @Autowired
    VehicleMaintenanceService vehicleMaintenanceService;

    @InitBinder
    public void initBinder(WebDataBinder binder) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        dateFormat.setLenient(false);
        binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
    }

        /**
         * 创建作者:   牛江丽
         * 创建日期:   2017年9月25日 下午09:25:41
         * 方法介绍:  车辆维护记录index
         * 参数说明:
         * @return
         */
    @RequestMapping("/index")
    public String index(){
        return "app/vehicle/VehicleMaintenance/index";
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年9月25日 下午09:25:41
     * 方法介绍:  车辆维护记录查询（queryFlag=1，查询，=0列表展示）
     * 参数说明:
     * @return
     */
    @RequestMapping("/queryList")
    public String queryList(String queryFlag, Map<String,Object> map){
        map.put("queryFlag",queryFlag);
        return "app/vehicle/VehicleMaintenance/queryList";
    }


    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年9月25日 下午09:25:41
     * 方法介绍:   车辆维护记录编辑（editFlag=1,修改，=0添加）
     * 参数说明:
     * @return
     */
    @RequestMapping("/editMaintenance")
    public String editMaintenance(String editFlag, int vmId, HttpServletRequest request,HttpServletResponse response){
        request.setAttribute("editFlag",editFlag);
        request.setAttribute("vmId",vmId);
        return "app/vehicle/VehicleMaintenance/editMaintenance";
    }


    /**
     * 创建作者:   高亚峰
     * 创建日期:   2017/9/20 16:09
     * 类介绍  :   增加车辆维护记录
     * 构造参数:
     */
    @ResponseBody
    @RequestMapping("/addMaintenance")
    public ToJson<Object> addMaintenance(VehicleMaintenanceWithBLOBs vehicleMaintenanceWithBLOBs){
        return vehicleMaintenanceService.addMaintenance(vehicleMaintenanceWithBLOBs);
    }

    /**
     * 创建作者:   高亚峰
     * 创建日期:   2017/9/20 16:09
     * 类介绍  :   车辆维护记录查询导出
     * 构造参数:
     */
    @ResponseBody
    @RequestMapping("/selectAllMaintenance")
    public ToJson<VehicleMaintenanceWithBLOBs> selectAllMaintenance(HttpServletRequest request, HttpServletResponse response, VehicleMaintenanceWithBLOBs vehicleMaintenanceWithBLOBs, String startTime, String endTime, String startFee, String endFee, String export){
        return vehicleMaintenanceService.selectAllMaintenance(request,response,vehicleMaintenanceWithBLOBs,startTime,endTime,startFee,endFee,export);
    }
    /**
     * 创建作者:   高亚峰
     * 创建日期:   2017/9/20 18:19
     * 类介绍  :   车辆维护信息修改
     * 构造参数:
     */
    @ResponseBody
    @RequestMapping("/edit")
    public ToJson<Object> edit(VehicleMaintenanceWithBLOBs vehicleMaintenanceWithBLOBs){
        return vehicleMaintenanceService.editMaintenance(vehicleMaintenanceWithBLOBs);
    }
    /**
     * 创建作者:   高亚峰
     * 创建日期:   2017/9/20 18:19
     * 类介绍  :   车辆维护信息删除
     * 构造参数:
     */
    @ResponseBody
    @RequestMapping("/deleteMaintenance")
    public ToJson<VehicleMaintenanceWithBLOBs> deleteMaintenance(Integer vmId){
        return vehicleMaintenanceService.deleteMaintenance(vmId);
    }

    /**
     * 创建作者:   高亚峰
     * 创建日期:   2017/9/26 18:19
     * 类介绍  :   车辆详细信息查询
     * 构造参数:
     */
    @ResponseBody
    @RequestMapping("/getdetail")
    public ToJson<VehicleMaintenanceWithBLOBs> getdetail(Integer vmId){
        return vehicleMaintenanceService.getdetail(vmId);
    }


}
